iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
DevOps

k8s歷險記系列 第 21

Day21-又給人貼標籤 Labels and Selectors

  • 分享至 

  • xImage
  •  

在使用k8s時,pod的數量與種類會隨著專案數量越來越多,管理的難度也會越來越高,這時就會需要一些分類的依據,而label就能勝任此工作

什麼是label

label是一個能加到object上的key/value組合,通常會用識別對使用者有意義以及相關的object,就像下面這樣:

"metadata": {
  "labels": {
    "key1" : "value1",
    "key2" : "value2"
  }
}

(來源)

不過要注意,label通常用於有效的查詢和監控,理想上適用於UI以及CLI。而如果是沒有辨識性的資訊則建議使用Annotations

下面是一些常見的label 範例:
"release" : "stable", "release" : "canary"
"environment" : "dev", "environment" : "qa", "environment" : "production"
"tier" : "frontend", "tier" : "backend", "tier" : "cache"
"partition" : "customerA", "partition" : "customerB"
"track" : "daily", "track" : "weekly"

如果想看更多範例可以去看官網範例,有更多常用的範例.

跟uid和names不同,label並沒有唯一性,因為通常情況之下會讓多個物件擁有相同的label,如果要透過label識別一組物件,就要透過Label selectors。

什麼是Label selectors

單看文字意思,自然是label所使用的選擇器(selectors),他能過濾label,目前api支援兩種組合:
equality-based 和 set-based

  1. equality-based:
    就是常見的判斷式,有 =, !=, ==
  2. set-based:
    通常用以多組label搜尋,有 in notinexists

以下是範例:
https://ithelp.ithome.com.tw/upload/images/20210929/20129607Uf8JTew1aJ.png

透過這種方式,就可以撈出符合條件label的物件。

而除了label selectors外,k8s還支援另一種selectors,這也是我們下一章會介紹的內容。


上一篇
Day20-名稱宇宙? 什麼是Namespace
下一篇
Day22- 場地也能選? Field Selectors
系列文
k8s歷險記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言